package DAL
{
	import GUI.Login;
	import GUI.Perfil;
	import GUI.Utils;
	
	import MUNDO.Jugador;
	import MUNDO.Partida;
	
	import flash.events.MouseEvent;
	import flash.geom.PerspectiveProjection;
	import flash.text.TextField;
	
	import playerio.*;
	import playerio.DatabaseObject;
	
	public class ModificarDAO
	{
		//Atributos
		public var _triviador:Triviador = null;				 //Instancia de la clase triviador
		public var _existe:int = 0;   						//0 no se ha intentado, 1 si existe, 2 no existe 
		public var mensajeError:TextField = new TextField(); //Mensaje de error
		
		//Constructor
		public function ModificarDAO(triviador:Triviador)
		{
			_triviador = triviador;
		}
		
		//Getters
		public function get existe():int{
			return _existe;
		}
		
		//setters
		public function set existe(existe:int):void{
			_existe = existe;
		}
		
		//Metodos
		/**
		 * Funcion que recibe los campos proporcionados por el usuario, y modifica los valores en la base de datos
		 * @param nombre Nombre modificado del usuario
		 * @param contrasena Contraseña modificada del usuario
		 * @param perfil Instancia delperfil del usuario 
		 **/
		public function modificarUsuario(nombre:String, contrasena:String, perfil:Perfil)
		{	
			if(nombre == Partida.jugador.nombre){
				Partida.client.bigDB.load("Jugador", Partida.jugador.nombre, function(user:DatabaseObject):void
				{
					user.pass = contrasena ;
					user.save();
				});
			}else{
				
				Partida.client.bigDB.load("Jugador", nombre, function(user:DatabaseObject):void
				{
					
					if(user==null){
						Partida.client.bigDB.load("Jugador", Partida.jugador.nombre, function(user2:DatabaseObject):void
						{
							Partida.client.bigDB.createObject("Jugador",nombre,{pass:contrasena,preguntasCorrectas:user2.preguntasCorrectas,preguntasIncorrectas:user2.preguntasIncorrectas,estado:user2.estado,nivel:user2.nivel,puntaje:user2.puntaje,posicion:user2.posicion},null,null);
							var arregloEliminar:Array= new Array(); 
							arregloEliminar.push(Partida.jugador.nombre);
							Partida.client.bigDB.deleteKeys("Jugador",arregloEliminar,null,null);
							Partida.jugador = new Jugador(nombre, contrasena, 0, 0, 0, 0);
							Partida.jugador.nombre = nombre;
						});
						
						_triviador.gotoAndStop(1,"Escena 14");
						perfil.crearPerfil();
					} else {
						mensajeError.x = 295;
						mensajeError.y = 70;
						mensajeError.height = 20;
						mensajeError.width=150;
						mensajeError.text = "EL USUARIO YA EXISTE";
						mensajeError.setTextFormat(Utils.formatearErrores());
						_triviador.addChild(mensajeError);
					}
					
				});
				
			}
		}
		
	}	
}